![マネジメントコンソールの AMI 選択画面から確認できない古いバージョンの RHEL AMI から EC2 インスタンスを起動する方法](https://devio2023-media.developers.io/wp-content/uploads/2023/09/amazon-ec2.png)
マネジメントコンソールの AMI 選択画面から確認できない古いバージョンの RHEL AMI から EC2 インスタンスを起動する方法
困っていた内容
オンプレで稼働している古いバージョン(RHEL7.4など)のサーバを AWS へ移行する必要があるが、マネジメントコンソールの AMI 選択画面では同じバージョンの AMI を確認することができない。
該当バージョンを使用した EC2 インスタンスを起動する方法があれば教えてください。
実際の状況
EC2 コンソールから AMI を選択して「パブリックイメージ」を選んだ後に、検索バーで公式の Red Hat Enterprise Linux AMI を識別する「所有者=309956199498」を入力し、「RHEL-7.4」と入力したが何もヒットしない。
どう対応すればいいの?
原因
AWS はバージョンが古く、非推奨となった AMI を EC2 コンソール経由で選択できないようにします。
・AMI ユーザーは、非推奨の AMI をは EC2 コンソール経由で選択できなくなります。例えば、非推奨の AMI は、インスタンスの起動ウィザードの AMI カタログに表示されません。AMI 所有者の EC2 コンソール上には、非推奨の AMI が引き続き表示されます。
・AMI ユーザーで、非推奨となった AMI の ID がわかっている場合は、API、CLI、または SDK により、非推奨の AMI を使用しながらインスタンスの起動を継続することができます。
対応方法
AWS CLI の describe-images コマンドを使用して、対象バージョンとなる(非推奨の) RHEL AMI の AMI ID を確認し、その AMI ID を run-instances コマンドで使用して EC2 インスタンスを起動します。
実際に EC2 インスタンスを起動させてみた
① describe-images コマンドを使用する
describe-images
コマンドを使用して希望する条件の AMI の検索をかけます。
今回は以下の条件でコマンドを実行して AMI 名と AMI ID をテキスト形式で返却するようにします。
- 所有者: 309956199498(※ 公式の RHEL)
- 非推奨のものも含める
- リージョン: 東京
- ルートデバイスタイプ: EBS
- アーキテクチャ: x86_64
- バージョン: RHEL-7.4
aws ec2 describe-images --owners 309956199498 \ --include-deprecated \ --region ap-northeast-1 \ --filters Name=root-device-type,Values=ebs Name=architecture,Values=x86_64 \ --output text \ --query 'Images[].[Name,ImageId]' \ | grep RHEL-7.4
コマンド結果は次のようになりました。
RHEL-7.4_HVM_GA-20170808-x86_64-2-Hourly2-GP2 ami-30ef0556 RHEL-7.4_HVM_Beta-20170518-x86_64-1-Hourly2-GP2 ami-31261f56 RHEL-7.4_HVM-20180122-x86_64-1-Hourly2-GP2 ami-36f09350 RHEL-7.4_HVM_GA-20170724-x86_64-1-Hourly2-GP2 ami-3901e15f RHEL-7.4_HVM-20180103-x86_64-2-Hourly2-GP2 ami-eb50cd8d
② run-instances コマンドを使用する
上記で返却された結果にある ami-36f09350 をrun-instances
コマンドで使用します。
今回はインスタンスタイプとして t2.micro を選んでいます。
aws ec2 run-instances --image-id ami-36f09350 \ --instance-type t2.micro \ --key-name キーペア名 \ --region ap-northeast-1
コマンドを実行して少しすると EC2 コンソールで対象の AMI を使用した EC2 インスタンスが起動されました。
注記
-
非推奨の AMI ではサポート期限やセキュリティ更新の問題がありますため、検証や移行などの用途でどうしても古いバージョンの AMI を使って EC2 インスタンスを立ち上げる必要がある場合にのみ、上記の対応方法をご使用いただければと存じます。
-
describe-images
コマンドで返却される利用可能な AMI のリストは随時変更される可能性がございます。